Fix pipeline: add timeout, reduce runner demand, fix Windows test#14
Merged
netkeep80 merged 8 commits intonetkeep80:mainfrom Feb 3, 2026
Merged
Fix pipeline: add timeout, reduce runner demand, fix Windows test#14netkeep80 merged 8 commits intonetkeep80:mainfrom
netkeep80 merged 8 commits intonetkeep80:mainfrom
Conversation
Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: netkeep80#10
Jobs were hanging indefinitely waiting for GitHub Actions hosted runners to become available. The default timeout is 6 hours, causing the pipeline to appear stuck. Setting timeout-minutes: 5 ensures jobs fail fast when runners are unavailable, giving clear feedback instead of hanging. Fixes netkeep80#10 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The separate lint job required an additional ubuntu-latest runner, contributing to runner acquisition failures. By integrating lint checks (file size and clang-format) into the Linux build job using `if: runner.os == 'Linux'` conditions, we reduce the total number of concurrent jobs from 4 to 3, decreasing the likelihood of runner exhaustion on the free tier. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This reverts commit 3b45920.
The previous CI runs all failed due to a GitHub Actions hosted runner outage on Feb 02, 2026. Pushing empty commit to trigger a fresh CI run to verify the pipeline fix works now that the outage is resolved. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove stale res.json before each test run to prevent false positives when avm crashes (previous test output would incorrectly pass) - Normalize CRLF to LF in test comparison for cross-platform compatibility Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The avm program uses deep recursion in export_json which exceeds the default 1MB Windows stack when processing large inputs like text2.json (26,530 rel_t entities). Linux/macOS default to 8MB stack which is sufficient. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The target_link_options for avm_unit_test must come after the add_executable that defines it. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #10
The CI pipeline jobs were hanging indefinitely. Investigation revealed multiple issues that are fixed in this PR.
Root causes and fixes
No job timeout configured — Jobs used GitHub's default 6-hour timeout, so a hanging job could run for hours before failing.
timeout-minutes: 5to the build job (build+test completes in <1 minute normally)Excessive runner demand — The separate
lintjob required a 4th concurrent runner, increasing contention on the free tier.if: runner.os == 'Linux'conditions, reducing concurrent jobs from 4 to 3Windows stack overflow on text2.json (pre-existing bug) — The
avmprogram uses deep recursion inexport_jsonwhich creates 26,530rel_tentities fortext2.json. Windows default 1MB stack is insufficient (Linux/macOS default to 8MB)./STACK:8388608(MSVC) /-Wl,--stack,8388608(MinGW) link options for Windows buildsTest false positives (pre-existing bug) — If
avmcrashed during a test, theres.jsonfrom a previous test remained, causing the test to compare against stale output and report a confusing mismatch instead of a clear crash error.res.jsoncleanup before each test run incmake/run_test.cmake, plus CRLF→LF normalization for cross-platform comparisonFiles changed
.github/workflows/ci.yml— Timeout + merged lint into build jobCMakeLists.txt— Windows 8MB stack size for both executablescmake/run_test.cmake— Stale output cleanup + line ending normalizationCI status
All 3 platforms pass ✅ (ubuntu, windows, macos) — 17/17 tests on each.
Test plan
🤖 Generated with Claude Code